package com.alks.function.mapper.stockdept.pcfactorystockquery;

import com.alks.entity.data.entity.PcSupplementMtl;
import com.alks.function.data.dto.finance.mtlcosts.FinSuppMtlDto;
import com.alks.function.data.dto.pcfactorywork.PcSupplementMtlDto;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 补料审核--补料明细 Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2023-09-26
 */
@Mapper
public interface SD_SQ_PcSupplementMtlMapper extends BaseMapper<PcSupplementMtl> {

    /*整单删除*/
    void spAllDelete(String slipNo);

    /*查询材料数据*/
    List<PcSupplementMtlDto> getSpMtlQuery(String slipNo);

    /**
     * 获取补料材料费用
     * @param slipNo 补料单号
     * @param companyId 公司ID
     */
    void getPrice(@Param("slipNo") String slipNo, @Param("companyId") String companyId);

    /**
     * 计算补料明细
     *
     * @param slipNo    补料单号
     * @param companyId 公司ID
     * @param userName 用户名
     */
    void spMtlAdd(@Param("slipNo") String slipNo, @Param("companyId") String companyId, @Param("userName") String userName);

    /**
     * 获取待分配责任数量
     * @param slipNo 补料单号
     * @param mtlNo 物料编号（为空则全选）
     * @return 包含mtlNo，qty两个键
     */
    List<Map<String, Object>> getPendingQty(@Param("slipNo") String slipNo, @Param("mtlNo") String mtlNo, @Param("companyId") String companyId);

    /**
     * 结算应付明细查询
     */
    List<FinSuppMtlDto> suppDetQuery(@Param("slipNo") String slipNo, @Param("companyId") String companyId);

    /**
     * 审核打印材料部分查询
     */
    List<PcSupplementMtl> cfmPrintMtlQuery(@Param("slipNo") String slipNo, @Param("companyId") String companyId);
}
